home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cpp_libs / intrvews / tut-code.lha / tut-code / image / main.c < prev   
C/C++ Source or Header  |  1992-01-03  |  1KB  |  58 lines

  1. #include <InterViews/background.h>
  2. #include <InterViews/image.h>
  3. #include <InterViews/place.h>
  4. #include <InterViews/tiff.h>
  5. #include <InterViews/session.h>
  6. #include <InterViews/style.h>
  7. #include <InterViews/transformer.h>
  8. #include <InterViews/tformsetter.h>
  9. #include <InterViews/window.h>
  10. #include <stdio.h>
  11. #include <stdlib.h>
  12.  
  13. static PropertyData props[] = {
  14.     { "*visual", "TrueColor" },
  15.     { nil }
  16. };
  17.  
  18. static OptionDesc options[] = {
  19.     { "-rotate", "Image*rotate", OptionValueNext },
  20.     { "-scale", "Image*scale", OptionValueNext },
  21.     { nil }
  22. };
  23.  
  24. int main(int argc, char** argv) {
  25.     Session* session = new Session("Image", argc, argv, options, props);
  26.     if (argc == 1) {
  27.     fprintf(stderr, "Usage: %s <file>\n", argv[0]);
  28.     exit(1);
  29.     }
  30.  
  31.     Raster* r = TIFFRaster::load(argv[1]);
  32.     if (r == nil) {
  33.     fprintf(stderr, "%s: open tiff image %s failed\n", argv[0], argv[1]);
  34.     exit(1);
  35.     }
  36.     Style* style = session->style();
  37.     Transformer t;
  38.     float f;
  39.     if (style->find_attribute("scale", f)) {
  40.     t.scale(f, f);
  41.     }
  42.     if (style->find_attribute("rotate", f)) {
  43.     t.rotate(f);
  44.     }
  45.     session->run_window(
  46.     new ApplicationWindow(
  47.         new Background(
  48.         new VariableSpan(
  49.             new TransformSetter(
  50.             new Image(r), t
  51.             )
  52.         ),
  53.         style->flat()
  54.         )
  55.     )
  56.     );
  57. }
  58.